package com.kamaro.action;

import com.kamaro.dao.EmbalagemDAO;
import com.kamaro.dao.implementacao.HibernateEmbalagemDAO;
import com.kamaro.form.CadastrarEmbalagemForm;
import com.kamaro.form.CadastrarProdutoForm;
import com.kamaro.model.Embalagem;
import com.kamaro.model.Produto;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * Created by vanessa.chan on 07/04/14.
 */
public class CadastrarEmbalagemAction extends DispatchAction {
        private EmbalagemDAO dao = new HibernateEmbalagemDAO();

    public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

        CadastrarEmbalagemForm frm = (CadastrarEmbalagemForm) form;
        frm.init();
        List<Embalagem> lista = dao.listarAll();
        frm.setListarEmbalagem(lista);
        return mapping.findForward("embalagem");
    }

    public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

        CadastrarEmbalagemForm frm = (CadastrarEmbalagemForm) form;

        if(frm.getAcao().equals("alterar"))
            dao.update(frm.getEmbalagem());

        else if(frm.getAcao().equals(""))
            dao.save(frm.getEmbalagem());

        return unspecified(mapping, form, request, response);
    }

    public ActionForward pegaObj(ActionMapping mapping, ActionForm form,
                                 javax.servlet.http.HttpServletRequest request,
                                 javax.servlet.http.HttpServletResponse response)
            throws Exception {
        CadastrarEmbalagemForm frm = (CadastrarEmbalagemForm) form;
        if(frm.getAcao().equals("alterar")){
            int index = frm.getIndexList();
            frm.setEmbalagem((Embalagem) frm.getListarEmbalagem().get(index));
        }



        return mapping.findForward("embalagem");
    }


    public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

        CadastrarEmbalagemForm frm = (CadastrarEmbalagemForm) form;
        int index = frm.getIndexList();
        Embalagem e = (Embalagem) frm.getListarEmbalagem().get(index);
        dao.excluir(e);
        return unspecified(mapping, form, request, response);
    }


}